sctp: add size validation when walking chunks
authorMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Mon, 28 Jun 2021 19:13:42 +0000 (16:13 -0300)
committerSalvatore Bonaccorso <carnil@debian.org>
Tue, 3 Aug 2021 05:50:50 +0000 (06:50 +0100)
commit17f9d5cd5f51935cc48a9cf9856ce07583903ae4
treef0ec5822109a5bd70bc42429d1dde4f8b239064a
parentd6bfb43c40531ac51b1c73bdad8467174af8f8d3
sctp: add size validation when walking chunks

Origin: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit?id=6ef81a5c0e22233e13c748e813c54d3bf0145782
Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2021-3655

[ Upstream commit 50619dbf8db77e98d821d615af4f634d08e22698 ]

The first chunk in a packet is ensured to be present at the beginning of
sctp_rcv(), as a packet needs to have at least 1 chunk. But the second
one, may not be completely available and ch->length can be over
uninitialized memory.

Fix here is by only trying to walk on the next chunk if there is enough to
hold at least the header, and then proceed with the ch->length validation
that is already there.

Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name sctp-add-size-validation-when-walking-chunks.patch
net/sctp/input.c